package com.unitd.app.param.controller;

import com.unitd.frame.sso.common.helper.SSOHelper;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @desc 退出SSO登陆控制器
 * @filename LogoutController.java
 * @copyright www.unitd.com
 * @author Hudan
 * @version 1.0
 * @date 2016/10/4
 */
@Controller
public class LogoutController extends BaseController {

	/**
	 * @desc 退出当前sso登录
	 * 如果实现 SSOCache 缓存, sso 自动缓存 token
	 * 退出只需要调用: SSOHelper.clearLogin(request, response);
	 * 程序将自动清理 token 缓存信息,同时各个系统都会自动退出.建议退出登录都调用此方法,退出更优雅.
	 * 如果你不这么干那么您只能挨个不同域退出一遍,最终全站退出
	 * @return String
	 */
	@RequestMapping("/logout")
	public String logout() {
		// SSO 退出,清空退出状态即可; 子系统退出 SSOHelper.logout(request, response); 注意 sso.properties 包含 退出到SSO 的地址,属性 sso.logout.url 的配置
		SSOHelper.clearLogin(request, response);
		return "logout_success";
	}

	/**
	 * @desc 对外提供退出接口
	 */
	@ResponseBody
	@RequestMapping("/logmy")
	public String logmy() {
		// 非 SSO 所在域系统,提供退出方法给 SSO 统一退出
		SSOHelper.clearLogin(request, response);
		return "success";
	}
}
